# @Time    : 2018/5/31 17:39
# @Author  : Jame
from db import models
from interface import common_interface



#创建老师的日志对象
logger=common_interface.load_my_logging_cfg('teacher')

#1.老师登陆 teacher_login_interface  见common_interface中



#2.查看教授课程
def teacher_check_course_interface(name):
    obj=models.Teacher.select(name)
    course_list=obj.check_course()
    if len(course_list)==0:

        logger.debug('%s 老师查看教授课程失败，尚未选择课程'%name)
        return False,'尚未选择教授课程，请选择后再查看...'
    else:

        return True,course_list



#3.老师选择教授课程
def teacher_select_course_interface(teacher_name,course):
    obj=models.Teacher.select(teacher_name)
    course_obj=models.Course.select(course)
    if course in obj.course_list:

        return False,'%s 课程已经选择，请勿重复选择...'%course
    else:
        if course_obj.school_name in obj.school_list:
            obj.teacher_select_course(course)

            logger.info('[老师]:%s 选择 %s课程成功!'%(teacher_name,course))
            return True,'%s 课程，选择成功!'%course
        else:
            logger.error('%s 老师选择的 %s 课程，不在所在校区.'%(teacher_name,course))
            return False,'%s 课程不在所在校区内，请联系管理员!'%course




#4.查看老师教授课程里的学生名单(老师教授班级，通过教授班级名称打印班级里的学生)
def teacher_check_student_interface(teacher_name):
    teacher_obj=models.Teacher.select(teacher_name)
    while True:
        for n,v in enumerate(teacher_obj.course_list):
            print('%s : %s'%(n,v))
        course_num=input('请选择课程的编号:').strip()
        if not course_num.isdigit():continue
        course_name=teacher_obj.course_list[int(course_num)] #通过老师对象获取课程名称，通过课程名称获取课程对象
        course_obj=models.Course.select(course_name)

        if len(course_obj.student_name_list)==0:
            return False,'%s 课程尚未有学员报名，请稍后重试...'%course_name
        else:
            return True,course_obj.student_name_list


#5.修改学生成绩接口
def update_student_score(teacher_name):
    teacher_obj=models.Teacher.select(teacher_name)
    while True:
        print('请选择教授的课程:')
        for n,v in enumerate(teacher_obj.course_list):
            print('[%s]: %s'%(n,v))
        course_num=input('请选择课程编号:').strip()
        if not course_num.isdigit():return False,'选择错误，请重试...'
        course_name=teacher_obj.course_list[int(course_num)]

        course_obj=models.Course.select(course_name)
        for n,v in enumerate(course_obj.student_name_list):
            print('[%s]: %s'%(n,v))

        student_num=input('请选择要修改学生的编号:').strip()
        if not student_num.isdigit():return False,'选择错误，请重试...'
        student_name=course_obj.student_name_list[int(student_num)]

        student_score=input('请输入学生的分数:').strip()
        if not student_score.isdigit():return False,'选择错误，请重试...'

        student_obj=models.Student.select(student_name)
        #student=student_obj.Student()

        teacher_obj.update_student_score(student_obj,course_name,student_score)

        logger.info('%s 老师修改：%s 学生的 %s 课程分数修改成功!'%(teacher_name,student_name,course_name))
        return True,'%s 学生的 %s 课程分数修改成功!'%(student_name,course_name)


